package com.wclass.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableLogic;
import com.baomidou.mybatisplus.annotations.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;


/**
 * <p>
 * 用户
 * </p>
 *
 * @author 森森
 * @since 2018-08-19
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("base_app_user")
@SuppressWarnings("serial")
public class BaseAppUser extends SuperEntity<BaseAppUser> {

    @ApiModelProperty("是否删除 0：有效，1：删除")
    @JSONField(serialize = false)
    @TableLogic
    private Integer state = 0;

    @ApiModelProperty("性别 1：男 2：女")
    private Integer sex = 0;

    @ApiModelProperty("头像地址")
    @TableField("picture_address")
    private String pictureAddress;

    @ApiModelProperty("用户名")
    @TableField("user_name")
    private String username;

    @ApiModelProperty("昵称")
    @TableField("nick_name")
    private String nickName;

    @JSONField(serialize = false)
    @ApiModelProperty("密码")
    private String password;

    @ApiModelProperty("手机号")
    private String phone;

    @ApiModelProperty("token值")
    private String token;

    @ApiModelProperty("登录时间")
    @TableField("login_time")
    private Date loginTime;

    @ApiModelProperty("角色类型(0:学生，1：老师）")
    @TableField("type")
    private Integer type;

    @ApiModelProperty("职务类型：1、机构校长，团队创始人；2、教务主任；3、教师；4、助教；5、机构销售，团队咨询；6、财务")
    @TableField("rold_id")
    private Integer roldId;

    @ApiModelProperty("职务名称")
    @TableField(exist = false)
    private String roleName;

    @ApiModelProperty("关注类型（json存储）")
    @TableField("course_type")
    private String courseType;
    /**
     * 粉丝数量
     */
    @ApiModelProperty("粉丝数量")
    @TableField("fan_num")
    private Integer fanNum;
    /**
     * 关注数量
     */
    @ApiModelProperty("关注数量")
    @TableField("focus_num")
    private Integer focusNum;
    /**
     * 评价数
     */
    @ApiModelProperty("评价数")
    @TableField("praises_num")
    private Integer praisesNum;
    /**
     * 教学领域
     */
    @ApiModelProperty("教学领域（json存储）")
    @TableField("teaching_field")
    private String teachingField;

    @ApiModelProperty("职位")
    private String postname;
    /**
     * 个人介绍
     */
    @ApiModelProperty("个人介绍")
    @TableField("personal_intro")
    private String personalIntro;

    @ApiModelProperty("收货地址")
    @TableField("family_address")
    private String familyAddress;

    @ApiModelProperty("收货人")
    private String receiver;

    @ApiModelProperty("收货人手机号")
    @TableField("receiver_phone")
    private String receiverPhone;

    @ApiModelProperty("省")
    @TableField("province")
    private String province;

    @ApiModelProperty("市")
    @TableField("city")
    private String city;

    @ApiModelProperty("区")
    @TableField("area")
    private String area;
    /**
     * 所属机构、团队id
     */
    @ApiModelProperty("所属机构、团队id")
    @TableField("institution_id")
    private Long institutionId;
    /**
     * 机构、团队邀请状态，1：等待通过邀请，2：已添加，3：已拒绝
     */
    @ApiModelProperty("机构、团队邀请状态，1：等待通过邀请，2：已添加，3：已拒绝")
    @TableField("institution_invite_state")
    private Integer institutionInviteState;
    /**
     * 邮箱
     */
    @ApiModelProperty("邮箱")
    @TableField("mail")
    private String mail;
    /**
     * 微信
     */
    @ApiModelProperty("微信")
    @TableField("weixin")
    private String weixin;

    @ApiModelProperty("腾讯qq")
    private String tencent;

    @ApiModelProperty("新浪微博")
    private String sina;

    @ApiModelProperty("其他平台")
    private String terrace;

    /**
     * 评级（1:A,2:B,3:C,4:D,5:E）
     */
    @ApiModelProperty("评级（1:A,2:B,3:C,4:D,5:E）")
    @TableField("level")
    private Integer level;
    /**
     * 可提现金额（单位：分）
     */
    @ApiModelProperty("可提现金额（单位：分）")
    @TableField("amount")
    private Long amount;
    /**
     * 冻结金额(单位：分)
     */
    @ApiModelProperty("冻结金额(单位：分)")
    @TableField("thawing_amount")
    private Long thawingAmount;

    /**
     * 已提现(单位：分)
     */
    @ApiModelProperty("已提现(单位：分)")
    @TableField("withdraw_amount")
    private Long withdrawAmount;
    /**
     * 评价标签（json存储）
     */
    @ApiModelProperty("评价标签（json存储）")
    @TableField("evaluate_label")
    private String evaluateLabel;
    /**
     * 排名
     */
    @ApiModelProperty("排名")
    @TableField("ranking_num")
    private Integer rankingNum;
    /**
     * 证件类型
     */
    @ApiModelProperty("证件类型：0：身份证 1：军官证 2：护照 3：驾驶证 （目前只考虑身份证）")
    @TableField("id_card_type")
    private Integer idCardType;

    /**
     * 证件照片地址
     */
    @ApiModelProperty("证件照片地址")
    @TableField("id_card_photo")
    private String idCardPhoto;

    /**
     * 证件号码
     */
    @ApiModelProperty("证件号码")
    @TableField("id_card_no")
    private String idCardNo;

    /**
     * 审核状态：（0，同意；1：拒绝；2：审核中，3：未申请）
     */
    @ApiModelProperty("审核状态")
    @TableField("audit_status")
    private Integer auditStatus;

    /**
     * 审核时间
     */
    @ApiModelProperty("审核时间")
    @TableField("audit_time")
    private Date auditTime;

    /**
     * 审核意见
     */
    @ApiModelProperty("审核意见")
    @TableField("audit_opinion")
    private String auditOpinion;

    /**
     * 授课案例
     */
    @ApiModelProperty("授课案例")
    @TableField("teaching_case")
    private String teachingCase;

    @ApiModelProperty("资讯证明")
    private String aptitude;

    /**
     * 教学成果
     */
    @ApiModelProperty("教学成果")
    @TableField("teaching_achieve")
    private String teachingAchieve;


    /**
     * 个人展示
     */
    @ApiModelProperty("个人展示")
    @TableField("self_show")
    private String selfShow;

    /**
     * 南瓜币个数
     */
    @ApiModelProperty("南瓜币个数")
    @TableField("currency")
    private Long currency;

    @ApiModelProperty("是否禁用 0：有效，1：禁用")
    private Integer disabled = 0;


    @ApiModelProperty("课程数量")
    @TableField("course_num")
    private Integer courseNum;

    @ApiModelProperty("学生数量")
    @TableField("student_num")
    private Integer studentNum;

    @ApiModelProperty("真实姓名")
    @TableField("real_name")
    private String realName;

    /**
     * 总收益
     */
    @ApiModelProperty("总收益（单位：分）")
    @TableField(value = "all_amount", exist = false)
    private Long allAmount;

    @TableField(value = "device_token")
    private String deviceToken;

    @TableField(value = "c_id")
    private String cId;

    @TableField(value = "mobile_type")
    private String mobileType;
    /**
     * 平台推荐，0：否，1：是
     */
    @ApiModelProperty("平台推荐，0：否，1：是")
    private Integer platform;

    @ApiModelProperty("0 未关注 1 已关注")
    @TableField(exist = false)
    private Integer isFocus;

}
